1001001001001001010100100100100100100100110010010010010010010100100101001001001001001001001001001001
Иконка канала 1001001001001001010100100100100100100100110010010010010010010100100101001001001001001001001001001001

1001001001001001010100100100100100100100110010010010010010010100100101001001001001001001001001001001

1 подписчик

1001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001000100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010000100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001000010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001111001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010101001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001010100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010000100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001101001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100101010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001000010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001111001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010101001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001010100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001000010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001111001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010101001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001010100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010000100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001101001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100101010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001010100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010000100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001101001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100101010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001000010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001111001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010101001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001010100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010000100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001101001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100101010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001101001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001111001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010101001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100111001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001010100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100101001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001101001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001001100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100100110010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010010011